//1. 导入Axios依赖信息
import axios from "axios";
import {
    MessageBox,
    Message
} from "element-ui"
//2. Axios对象的创建 create
const Server = axios.create({
    // baseURL: " ", //配置基地址
    // baseURL: " http://127.0.0.1:8888/api/private/v1/", //配置基地址
    baseURL: process.env.VUE_APP_API, //配置基地址
    timeout: 5000 //设置超时时间
})

// //3. 配置请求拦截器，前置拦截器
Server.interceptors.request.use((config) => {
    // console.log("前置拦截去");
    //必须返回配置信息，配置token值
    config.headers.Authorization = localStorage.getItem("token")
    return config

}, error => {
    return Promise.reject(error)
})

let flag = true
    ///4. 配置后置拦截器，或者叫相应拦截器
Server.interceptors.response.use((config) => {
    // console.log("我是后置拦截器", config);
    const status = config.data.meta.status
    let {
        data: code
    } = config
    const msg = config.data.meta.msg
        // console.log(msg);
    if (msg == "无效token") {
        if (flag) {
            flag = false
            MessageBox.confirm('token已过期！, 是否重新登录?', '提示', {
                confirmButtonText: '重新登录',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(() => {
                location.href = "/"
            }).catch(() => {
                Message({
                    type: "info",
                    message: "已取消！"
                })
            });
        }
    } else if (status == 400 || status == 401 || status == 403 || status == 500) {
        Message.error({
            duration: 1000,
            message: msg
        })
    }

    return config
}, error => {
    return Promise.reject(error)
})
export {
    Server
}